function outer() {
  return 0;
}

new BenchmarkSuite('Function Definitions', 50000, [], false,
  function innerFunctionDeclaratin() {
    function f() {
      return 0;
    }
    return f();
  },

  function innerFunctionDefinition() {
    var f = function() {
      return 0;
    };
    return f();
  },

  function innerFunctionExpression() {
    var f = (function() {
	       return 0;
	     });
    return f();
  },

  function innerFunctionFactory() {
    var f = (function() {
	       return function() {
		 return 0;
	       };
	     })();
    return f();
  },

  function outerFunction() {
    return outer();
  }
);
